Computing systems often utilize firmware that is stored in a non-volatile memory device, such as a read-only memory (“ROM”) device or a non-volatile random access memory (“NVRAM”) device. The firmware provides program code for performing power-on self tests, booting, and for providing support to the operating system and other functions. When computer systems are designed, there are many different combinations of hardware devices that may be present in the computer system or on a computer system motherboard. To support such a wide variety of hardware combinations, the motherboard manufacturers often provide original equipment manufacturers (“OEMs”) with a reference board and corresponding firmware image that represents the most common motherboard chipset configuration.
The reference board provides an OEM with a proof of concept that the OEM will then customize according to their requirements. The OEM may add, remove, or interchange hardware components to and from the reference board according to desired hardware configurations. As various hardware components are added or removed from a computer system motherboard, the firmware image must be updated to reflect the configuration change in order for the modified chipset configuration to properly function. The OEM must then request a firmware image that corresponds to the specific components of the customized motherboard. The customized firmware image is created and provided to the OEM for flashing into a memory device and distribution with the OEM's customized motherboard.
The firmware customization process often includes the modification of management data that is contained within the firmware for the customized system board. In particular, computing systems often utilize a firmware that is compatible with the system management basic input/output system (“SMBIOS”) specification. The SMBIOS specification addresses how motherboard and system vendors present management information about their products in a standard format. The information is intended to allow generic instrumentation to deliver this information to management applications, thereby eliminating the need for error prone operations like probing system hardware for presence detection.
In order to provide the correct management information for the customized board, management data contained within the firmware must be modified. This is typically not a process that is performed by the OEM. As a result, the firmware manufacturer must customize the SMBIOS data contained in the firmware for the OEM. This process consumes time and resources as the firmware image is created by a manufacturer, delivered to an OEM, returned to the manufacturer for customization, and so on.
It is with respect to these considerations and others that the various embodiments described below have been made.